cmake_minimum_required(VERSION 3.13)

set(POCO_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/include CACHE INTERNAL "Test Str")
set(POCO_LIB_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib)

if(UNIX)

    message("current platform: Linux ")
    
    set(POCO_LIB
            ${POCO_LIB_PATH}/libPocoFoundation.so 
            ${POCO_LIB_PATH}/libPocoDataSQLite.so 
            ${POCO_LIB_PATH}/libPocoData.so 
            ${POCO_LIB_PATH}/libPocoUtil.so 
            ${POCO_LIB_PATH}/libPocoXML.so 
            ${POCO_LIB_PATH}/libPocoJSON.so 
            ${POCO_LIB_PATH}/libPocoNet.so 
            ${POCO_LIB_PATH}/libPocoJSON.so 
            ${POCO_LIB_PATH}/libPocoMongoDB.so 
            ${POCO_LIB_PATH}/libPocoZip.so 
            CACHE INTERNAL "Test Str")

elseif(WIN32)

    message("current platform: Windows ")

    if(CMAKE_CL_64)    #CMAKE的内建变量，如果是true，就说明编译器的64位的，自然可以编译64bit的程序
        set(POCO_LIB_PATH ${POCO_LIB_PATH}/x64)
    else()
        set(POCO_LIB_PATH ${POCO_LIB_PATH}/x86)
    endif()

    set(POCO_LIB
            ${POCO_LIB_PATH}/PocoFoundation.lib 
            ${POCO_LIB_PATH}/PocoDataSQLite.lib 
            ${POCO_LIB_PATH}/PocoData.lib 
            ${POCO_LIB_PATH}/PocoUtil.lib
            ${POCO_LIB_PATH}/PocoXML.lib 
            ${POCO_LIB_PATH}/PocoJSON.lib 
            ${POCO_LIB_PATH}/PocoNet.lib 
            ${POCO_LIB_PATH}/PocoJSON.lib 
            ${POCO_LIB_PATH}/PocoMongoDB.lib 
            ${POCO_LIB_PATH}/PocoZip.lib 
            CACHE INTERNAL "Test Str")
endif()

target_include_directories(${PROJECT_NAME} PUBLIC ${POCO_INCLUDE})
target_link_libraries(${PROJECT_NAME} ${POCO_LIB})


####如果报错，将cmake最低版本设置成3.13既可解决#######

### cmake子目录和父目录变量传递方法：
#set(SQLITE3_LIB "children str" CACHE INTERNAL "Test Str") # 子cmake 和父cmake都可以访问
#set(TEST_CHILDREN_PARENT_SCOPE_STR "children str" PARENT_SCOPE) # 只有父cmake可以访问
#
## 子cmake 和父cmake都可以访问
#set(TEST_CHILDREN_ALL_SCOPE_STR  "children str")
#set(TEST_CHILDREN_ALL_SCOPE_STR ${TEST_CHILDREN_ALL_SCOPE_STR} PARENT_SCOPE)